Pregunta

Entonces tengo un 'sitio web' ASP.NET (a diferencia de una aplicación web) que no tiene ningún archivo AssemblyInfo.cs ni carpeta Bin ni nada por el estilo.

Quiero tener una manera de especificar un número de versión de ensamblaje (p. ej.7.0.2.0).En una aplicación web, haría esto en un archivo AssemblyInfo.cs.

Intenté agregar una carpeta de Propiedades con un archivo AssemblyInfo.cs pero no creo que se seleccione, porque cuando llamo a Assembly.GetExecutingAssembly().GetName().Version.ToString() obtengo 0.0.0.0

Entonces:¿Qué tengo que hacer para que AssemblyInfo.cs funcione O cómo puedo especificar un número de versión?

¿Fue útil?

Solución

K de Scott Allen tiene un puesto aquí, pero personalmente me gustaría recomendar muda a un proyecto de aplicación web.

Otros consejos

El número de versión establece la versión de la DLL. Y cuando no se precompila proyectos de sitios web, no estoy seguro de que puede establecer un número de versión de esta manera. Es posible que sólo tenga que versión mediante el uso de una etiqueta o algo en su sistema de control de origen y manejar esto por sí mismo.

No hay solo conjunto para que pueda establecer el número de versión. Es necesario volver a pensar lo que estamos tratando de lograr.

Trate de poner la clase AssemblyInfo en la carpeta App_Code.

Tal vez llegué un poco tarde, pero me encontré con el problema y lo que hice fue simplemente crear un ensamblaje que contenía solo un archivo fuente AssemblyInfo.cs con los atributos que quería.

Luego agregué el proyecto AssemblyInfo a mi solución.

Y luego implementé un script para ejecutarlo en la implementación de la siguiente manera:

:: 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"

La magia esta en

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

toma los atributos de AssemblyInfo.dll y los copia en el ensamblaje generado.

Espero eso ayude ;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top