2016-09-29 32 views
1

我正在使用Visual Studio Express 2013进行Web &在.net 4.5上开发web应用程序(不是站点)。在本地IIS和Azure/TFS中构建的App_Code

我构建,测试&在本地IIS 7.5上查看我的网站。 我在Azure上托管 - 使用应用服务。 我建立并使用VSTS网上发布到App服务插槽

我有我的课在App_Code文件夹 - 文件被标记为编译 这似乎是我可以将此设为本地IIS的唯一方法(还是我失去了一些东西) 而这一切的作品? - 所有的类都可以

但我需要建立和释放在VSTS/TFS(使用VS团队资源管理器推) 我使用的是标准的Azure的Web应用程序的构建在TFS上定义模块 - 这需要App_Code文件夹并将其移动到bin文件夹中 - 但不会编译它 - 因此在部署时会破坏这些类

我试图重新命名App_Code文件,但是,打破地方和仍然在TFS不编译

我缺少什么 - 我如何才能TFS要么编译我的类或App_Code文件夹复制到根(不理想但嘿它有用)?

+0

你是如何在本地管理你的APP_Code文件夹的?您是否想在Web应用程序部署期间使用合适的类?你正在构建整个网络解决方案还是只是.csproj项目? –

+0

我使用添加ASP.NET文件夹在VS中创建一个App_Code文件夹 - 然后在那里创建我的文件。然后我建立。我正在构建项目(实际上在这种情况下解决方案只是一个项目)。但是当我提交并推送到VSTS时,它将App_Code文件夹移动到/ bin中。但是这不能编译 - 所以这些类不适用于我 –

回答

0

在TFS中,当您构建一个类库项目时,将在bin文件夹下生成dll文件。这是正确的现象。建议你到创建一个Nuget Packages来管理你的类库。您可以在构建定义的顶部添加“NuGet安装程序”任务,以恢复解决方案的nuget包。

enter image description here

如果您正在使用vNext上TFS生成。还有一个非常详细的教程Build and Deploy Azure Web Apps using Team Foundation Server/Services vNext Builds供您参考。

+0

我正在使用完全相同的步骤 - 完全相同的步骤。我的问题是,无论我放置.cs文件的位置如何,它都不会被编译。所以,如果我创建一个AppCode文件夹并将我的.cs类放置在那里,或者即使将它们放在根中 - 它们也不会在构建中被拾取 - 或者至少该网站因'xxx未声明'而中断,所以我假设他们没有被包含在dll中 –

+0

我也尝试在解决方案和引用中包含一个单独的ClassLibrary项目 - 并且它再次在本地IIS上工作 - 但在构建后不在Azure中 - 在过去,如果我设置了网站项目(不是webapp),并包含一个ClassLibrary项目并引用它,它将ClassLibrary.dll的副本移动到项目bin文件夹中 - 这不会发生在WebApp中 –