手动编译生成ASP.NET MVC3 Web应用程序项目示例

执行下边命令可手动编译生成ASP.NET MVC3 Web应用程序项目[1],生成的站点文件保存在输出路径的_PublishedWebsites文件夹中:
MSBuild.exe 项目文件 /t:Clean;Build /p:Configuration=Release;OutDir=输出路径

为方便编译生成,将命令写成批处理保存到SendTo文件夹[2],只需右键单击项目文件,在菜单中选择发送到Release.bat即可:
@echo off
set savedir=F:\Project\Release
rd /s /q %savedir%
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe %1 /t:Clean;Build /p:Configuration=Release;OutDir=%savedir%
start %savedir%\_PublishedWebsites

问题答疑

问:为什么编译生成上传到服务器发现一些视图文件丢失了?
答:打开项目文件(csproj),搜索了下,发现如下内容:
<None Include="Views\Account\Create.cshtml" />
<None Include="Views\Account\Details.cshtml" />
<None Include="Views\Account\Edit.cshtml" />
<None Include="Views\Account\Index.cshtml" />

正常它们应该是这样的:
<Content Include="Views\Account\Create.cshtml" />
<Content Include="Views\Account\Details.cshtml" />
<Content Include="Views\Account\Edit.cshtml" />
<Content Include="Views\Account\Index.cshtml" />

查了MSDN,对于None的解释是[3]:
引用内容 引用内容
None - 不在项目输出组中包含该文件,并且在生成进程中不会对其进行编译。例如包含文档的文本文件,如自述文件。

在vs打开丢失文件属性,可以看到生成操作为无,设置为内容,重新编译生成即可:



补充说明

[1].若Visual Studio已关闭,可以直接使用MSBuild.exe生成项目,否则,建议先在Visual Studio生成一次,然后再使用MSBuild.exe,不然可能因为项目文件未保存导致生成有问题;
[2].Windows7下SendTo文件夹路径C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo;
[3].文件属性:http://msdn.microsoft.com/zh-cn/library/0c6xyb66(v=vs.80).aspx

评论: 0 | 引用: 0 | 查看次数: 3802
发表评论
登录后再发表评论!