Вопрос

Итак, у меня есть ASP.NET "Веб-сайт" (в отличие от веб-приложения), у которого нет файла AssemblyInfo.cs или папки Bin или чего-либо подобного.

Я хочу иметь способ указать номер версии сборки (например7.0.2.0).В веб-приложении вы бы сделали это в файле AssemblyInfo.cs.

Я попытался добавить папку свойств с файлом AssemblyInfo.cs, но я не думаю, что он подбирается - потому что, когда я вызываю Assembly.GetExecutingAssembly().getName().Version.toString() Я получаю 0.0.0.0

Итак:Что мне нужно сделать, чтобы файл AssemblyInfo.cs заработал, ИЛИ как я могу указать номер версии?

Это было полезно?

Решение

У К. Скотта Аллена есть сообщение здесь, но лично я бы порекомендовал вам перейти к проекту веб-приложения.

Другие советы

Номер версии задает версию библиотеки dll.Поскольку вы не выполняете предварительную компиляцию проектов веб-сайтов, я не уверен, что вы можете установить номер версии таким образом.Возможно, вам просто нужно создать версию с помощью ярлыка или чего-то еще в вашей системе управления версиями и настроить это самостоятельно.

Нет ни одной сборки, для которой вы могли бы установить номер версии.Вам нужно переосмыслить то, чего вы пытаетесь достичь.

Попробуйте поместить класс AssemblyInfo в папку App_Code.

Возможно, я немного опоздал, но я столкнулся с проблемой, и то, что я сделал, было просто созданием и сборкой, содержащей только исходный файл AssemblyInfo.cs с нужными мне атрибутами.

Затем я добавил project AssemblyInfo в свое решение.

И затем я реализовал скрипт для запуска при развертывании следующим образом:

:: Just prepare and clean before starting
SET DOTNETINSTALLDIR=%FRAMEWORKDIR%\v4.0.30319
rmdir /S /Q "%Depot%\AssetExplorer.Web"
mkdir "%Depot%\AssetExplorer.Web"

:: Compiles the web site
call "%DOTNETINSTALLDIR%\aspnet_compiler" -f -c -u -p "%~1..\Discovery.Web" -v "/AssetExplorer" "%Depot%\AssetExplorer.Web"

:: Time to merge the contents into the assembly
call "%WindowsSDK_ExecutablePath_x86%\aspnet_merge" -o ICM.dll -a "%Depot%\AssetExplorer.Web" -copyattrs "%~1..\AssemblyInfo\obj\Release\AssemblyInfo.dll"

Волшебство заключено в

-copyattrs "%~1..\AssemblyInfo\obj\Release\AssemblyInfo.dll", 

он берет атрибуты из AssemblyInfo.dll и копирует их в сгенерированную сборку.

Надеюсь, это поможет ;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top