Merge pull request #5 from huguesv/django19

Django19
This commit is contained in:
Steve Dower 2016-06-16 12:49:33 -07:00 коммит произвёл GitHub
Родитель 1d99425447 74e2b00931
Коммит 7bd3a1f330
22 изменённых файлов: 261 добавлений и 463 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -2,6 +2,7 @@ $tf/
Internal/
BuildOutput/
obj/
.vs
*.sdf
*.opensdf
*.suo

Просмотреть файл

@ -33,6 +33,13 @@
<AssemblyName>KinectGame</AssemblyName>
<FileAlignment>512</FileAlignment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">

Просмотреть файл

@ -37,6 +37,13 @@
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">

Просмотреть файл

@ -33,6 +33,13 @@
<AssemblyName>PollsDjango</AssemblyName>
<FileAlignment>512</FileAlignment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">
@ -98,9 +105,12 @@
<Content Include="app\templates\app\results.html" />
<Content Include="PollsDjango.png" />
<Content Include="Readme\readme.html" />
<Content Include="Readme\SyncDB.png" />
<Content Include="requirements.txt" />
</ItemGroup>
<ItemGroup>
<Content Include="app\migrations\0001_initial.py" />
<Content Include="app\migrations\__init__.py" />
</ItemGroup>
<Import Project="..\ProjectAfter.settings" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Просмотреть файл

@ -26,6 +26,8 @@
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
</PropertyGroup>
<ItemGroup>
<Compile Include="app\migrations\__init__.py" />
<Compile Include="app\migrations\0001_initial.py" />
<Compile Include="app\admin.py" />
<Compile Include="app\forms.py" />
<Compile Include="app\models.py" />
@ -41,6 +43,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="app\" />
<Folder Include="app\migrations\" />
<Folder Include="app\static\" />
<Folder Include="app\static\app\" />
<Folder Include="app\static\app\content\" />

Просмотреть файл

@ -21,6 +21,10 @@
<ProjectItem OpenInWebBrowser="true">readme.mht</ProjectItem>
<ProjectItem>requirements.txt</ProjectItem>
<Folder Name="app" TargetFolderName="app">
<Folder Name="migrations" TargetFolderName="migrations">
<ProjectItem>__init__.py</ProjectItem>
<ProjectItem>0001_initial.py</ProjectItem>
</Folder>
<Folder Name="static" TargetFolderName="static">
<Folder Name="app" TargetFolderName="app">
<Folder Name="content" TargetFolderName="content">

Просмотреть файл

@ -1,170 +1,128 @@
"""
Django settings for $safeprojectname$ project.
Generated by 'django-admin startproject' using Django 1.9.1.
For more information on this file, see
https://docs.djangoproject.com/en/1.9/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.9/ref/settings/
"""
from os import path
PROJECT_ROOT = path.dirname(path.abspath(path.dirname(__file__)))
import os
import posixpath
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '$guid2$'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ALLOWED_HOSTS = (
'localhost',
)
ALLOWED_HOSTS = []
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
# Application definition
INSTALLED_APPS = [
'app',
# Add your apps here to enable them
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = '$safeprojectname$.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = '$safeprojectname$.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': path.join(PROJECT_ROOT, 'db.sqlite3'),
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
LOGIN_URL = '/login'
# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
# Password validation
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/1.9/topics/i18n/
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
TIME_ZONE = 'UTC'
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True
# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = ''
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = path.join(PROJECT_ROOT, 'static').replace('\\', '/')
# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
# Make this unique, and don't share it with anybody.
SECRET_KEY = 'n(bd1f1c%e8=_xad02x5qtfn%wgwpi492e$8_erx+d)!tpeoim'
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = '$safeprojectname$.urls'
# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = '$safeprojectname$.wsgi.application'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or
# "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'app',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
# Specify the default test runner.
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
STATIC_ROOT = posixpath.join(*(BASE_DIR.split(os.path.sep) + ['static']))

Просмотреть файл

@ -3,34 +3,41 @@ Definition of urls for $safeprojectname$.
"""
from datetime import datetime
from django.conf.urls import patterns, include, url
from django.conf.urls import url, include
from django.contrib import admin
from app.forms import BootstrapAuthenticationForm
import django.contrib.auth.views
import app.forms
import app.views
admin.autodiscover()
urlpatterns = patterns('',
urlpatterns = [
url(r'^', include('app.urls', namespace="app")),
url(r'^contact$', 'app.views.contact', name='contact'),
url(r'^about', 'app.views.about', name='about'),
url(r'^seed', 'app.views.seed', name='seed'),
url(r'^contact$', app.views.contact, name='contact'),
url(r'^about', app.views.about, name='about'),
url(r'^seed', app.views.seed, name='seed'),
url(r'^login/$',
'django.contrib.auth.views.login',
django.contrib.auth.views.login,
{
'template_name': 'app/login.html',
'authentication_form': BootstrapAuthenticationForm,
'authentication_form': app.forms.BootstrapAuthenticationForm,
'extra_context':
{
'title':'Log in',
'year':datetime.now().year,
'title': 'Log in',
'year': datetime.now().year,
}
},
name='login'),
url(r'^logout$',
'django.contrib.auth.views.logout',
django.contrib.auth.views.logout,
{
'next_page': '/',
},
name='logout'),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
]

Двоичные данные
PollsDjango/Readme/SyncDB.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 14 KiB

Просмотреть файл

@ -21,25 +21,26 @@
<h1 class="top">One more thing...</h1>
<p>
Before running this project, you need to <strong>
synchronize the
create the
database
</strong>.
</p>
<h1>Synchronize the Database</h1>
<h1>Create the Database</h1>
<p>
This project has default settings for the database (it uses sqlite).
You'll need to create the database before running the project.
You'll need to create the database and create a superuser before running the project.
</p>
<ol>
<li>Open Solution Explorer.</li>
<li>
<p>Right-click the project node and select Python->Django Sync DB.</p>
<img src="SyncDB.png" />
Right-click the project node and select <strong>Python->Django Migrate</strong>.
</li>
<li>
Right-click the project node and select <strong>Python->Django Create Superuser</strong>.
</li>
<li>You will be prompted to create a super user, enter yes.</li>
<li>
Enter a user name, email and password when prompted. The username
and password do not need to match any existing account.

Просмотреть файл

@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-09 17:38
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Choice',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('text', models.CharField(max_length=200)),
('votes', models.IntegerField(default=0)),
],
),
migrations.CreateModel(
name='Poll',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('text', models.CharField(max_length=200)),
('pub_date', models.DateTimeField(verbose_name=b'date published')),
],
),
migrations.AddField(
model_name='choice',
name='poll',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.Poll'),
),
]

Просмотреть файл

Просмотреть файл

@ -20,12 +20,12 @@
]
},
{
"text": "Have you tried Node.js Tools for Visual Studio?",
"text": "Have you tried R Tools for Visual Studio?",
"choices": [
"No, I do not use Node.js",
"No, but I use/have used Node.js",
"Yes I have used it",
"Yes I use it frequently"
"No, I do not use R",
"No, but I use/have used R",
"Yes, I have used it",
"Yes, I use it frequently"
]
}
]

Просмотреть файл

@ -2,24 +2,25 @@
Definition of urls for polls viewing and voting.
"""
from django.conf.urls import patterns, url
from django.conf.urls import url
from app.models import Poll
from app.views import PollListView, PollDetailView, PollResultsView
urlpatterns = patterns('',
import app.views
urlpatterns = [
url(r'^$',
PollListView.as_view(
app.views.PollListView.as_view(
queryset=Poll.objects.order_by('-pub_date')[:5],
context_object_name='latest_poll_list',
template_name='app/index.html',),
name='home'),
url(r'^(?P<pk>\d+)/$',
PollDetailView.as_view(
app.views.PollDetailView.as_view(
template_name='app/details.html'),
name='detail'),
url(r'^(?P<pk>\d+)/results/$',
PollResultsView.as_view(
app.views.PollResultsView.as_view(
template_name='app/results.html'),
name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'app.views.vote', name='vote'),
)
url(r'^(?P<poll_id>\d+)/vote/$', app.views.vote, name='vote'),
]

Просмотреть файл

@ -51,12 +51,11 @@ def contact(request):
return render(
request,
'app/contact.html',
context_instance = RequestContext(request,
{
'title': 'Contact',
'message': 'Your contact page.',
'year': datetime.now().year,
})
'title':'Contact',
'message':'Your contact page.',
'year':datetime.now().year,
}
)
def about(request):
@ -65,12 +64,11 @@ def about(request):
return render(
request,
'app/about.html',
context_instance = RequestContext(request,
{
'title': 'About',
'message': 'Your application description page.',
'year': datetime.now().year,
})
'title':'About',
'message':'Your application description page.',
'year':datetime.now().year,
}
)
def vote(request, poll_id):

Просмотреть файл

@ -1,19 +1,12 @@
From: "Saved by Internet Explorer 11"
Subject: Django Web App Configuration
Date: Fri, 13 Jun 2014 15:42:59 -0700
Date: Thu, 9 Jun 2016 14:23:13 -0700
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0000_01CF871E.2743B0F0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.16384
This is a multi-part message in MIME format.
------=_NextPart_000_0000_01CF871E.2743B0F0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: file://C:\Projects\DEVDIV\PTVS\Python\Samples\PollsDjango\Readme\readme.html
Content-Location: file://C:\Projects\huguesv\PTVS-Samples\PollsDjango\Readme\readme.html
X-MimeOLE: Produced By Microsoft MimeOLE V10.0.10011.16384
=EF=BB=BF<!DOCTYPE HTML>
<!DOCTYPE html PUBLIC "" ""><!--=0A=
@ -39,284 +32,26 @@ http-equiv=3D"X-UA-Compatible">
<LINK=20
href=3D"../../../../../PythonTools/ReadmeStyle.css" rel=3D"stylesheet" =
type=3D"text/css">=20
<META name=3D"GENERATOR" content=3D"MSHTML 11.00.9600.17126"></HEAD>=20
<META name=3D"GENERATOR" content=3D"MSHTML 11.00.10586.306"></HEAD>=20
<BODY>
<H1 class=3D"top">One more thing...</H1>
<P> Before running this project, you need to <STRONG> =20
synchronize the database </STRONG>. </P>
<H1>Synchronize the Database</H1>
<P> Before running this project, you need to <STRONG> =
create=20
the database </STRONG>. </P>
<H1>Create the Database</H1>
<P> This project has default settings for the database (it uses =
sqlite). =20
You'll need to create the database before running the project. =
</P>
You'll need to create the database and create a superuser before =
running=20
the project. </P>
<OL>
<LI>Open Solution Explorer.</LI>
<LI>
<P>Right-click the project node and select Python-&gt;Django Sync =
DB.</P><IMG=20
=
src=3D"file:///C:/Projects/DEVDIV/PTVS/Python/Samples/PollsDjango/Readme/=
SyncDB.png">=20
</LI>
<LI>You will be prompted to create a super user, enter yes.</LI>
<LI> Right-click the project node and select=20
<STRONG>Python-&gt;Django Migrate</STRONG>. </LI>
<LI> Right-click the project node and select=20
<STRONG>Python-&gt;Django Create Superuser</STRONG>. </LI>
<LI> Enter a user name, email and password when prompted. =
The=20
username and password do not need to match any existing =
account. =20
</LI></OL></BODY></HTML>
------=_NextPart_000_0000_01CF871E.2743B0F0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: file:///C:/Projects/DEVDIV/PTVS/Python/Samples/PollsDjango/Readme/SyncDB.png
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
+pW5AAAAAElFTkSuQmCC
------=_NextPart_000_0000_01CF871E.2743B0F0--

Просмотреть файл

@ -1,2 +1,2 @@
django<1.7
django >=1.9, <2
pytz

Просмотреть файл

@ -33,6 +33,13 @@
<AssemblyName>PollsFlask</AssemblyName>
<FileAlignment>512</FileAlignment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">

Просмотреть файл

@ -33,6 +33,13 @@
<AssemblyName>PollsFlaskJade</AssemblyName>
<FileAlignment>512</FileAlignment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">

Просмотреть файл

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KinectGame", "KinectGame\KinectGame.csproj", "{4FFF0796-44CF-4EF2-90B7-B338FB417FD3}"
EndProject

Просмотреть файл

@ -33,6 +33,13 @@
<AssemblyName>PyvotProject</AssemblyName>
<FileAlignment>512</FileAlignment>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">

Просмотреть файл

@ -34,6 +34,13 @@
<AssemblyName>Microsoft.PythonTools.Samples</AssemblyName>
<UseVSSDKTemplateOnly>true</UseVSSDKTemplateOnly>
<CreateVsixContainer>true</CreateVsixContainer>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Content Include="Python Tools for VS License.rtf">