Tôi bắt đầu sử dụng WiX để thực hiện tự động xây dựng để tạo msi của các dự án C# của tôi và gặp lỗi "Biến số tiền xử lý không xác định '$ (var.MyProject.TargetDir)'"WiX undefined preprocessor biến
Tôi đang sử dụng WiX v3.0.5419 mới nhất. Bên wxs tôi nộp Tôi cố gắng để sử dụng các biến trước khi xử lý được liệt kê trên trang web này (http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor-variables.aspx)
<Component Id="MyId" Guid="MyGuid">
<File Id="MyId" Name="MyName" KeyPath="yes"
Source="$(var.MyProject.TargetDir)\MyName.dll" />
</Component>
Tôi đã thêm các tài liệu tham khảo cho MyProject đến .wixproj và nếu tôi mở nó lên trong Notepad tôi có thể xem tham chiếu.
<ItemGroup>
<ProjectReference Include="..\MyProject.csproj">
<Name>MyProject</Name>
<Project>{guid}</Project>
<Private>True</Private>
</ProjectReference>
</ItemGroup>
Đây là tập lệnh xây dựng nant mà tôi sử dụng để tạo msi. Có lẽ đó là vì .wixproj biết về tham chiếu dự án không được sử dụng trong bản dựng?
<exec basedir="${tools.wix}" managed="true" program="candle.exe">
<arg line='-out "${tools.wix.objfile}"' />
<arg value="../MySetup.wxs" />
</exec>
Bất kỳ ai có thể khai sáng cho tôi về điều này không?
Cảm ơn rất nhiều. Tôi chỉ phát hiện ra rằng wixproj là một tập tin msbuild và tôi đã thực sự đã xây dựng nó một cách chính xác thông qua việc xây dựng giải pháp của tôi! – David
Cũng giống như một thủ tục nhanh chóng - Cách chính xác để chỉ định tùy chọn sẽ là -dMyProject.TargetDir. Các var hàng đầu. là sai lầm. http://geekswithblogs.net/Howard/archive/2009/01/20/wix-variables.aspx –
@Sean: cảm ơn sự điều chỉnh. Đã sửa. –